<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>axios拦截器可以实现的功能</title>
    <!--NProgress的样式  -->
    <link rel="stylesheet" href="../assets/lib/NProgress/NProgress.css" />
    <!--toastr的样式  -->
    <link rel="stylesheet" href="../assets/lib/toastr/toastr.min.css" />
  </head>
  <body>
    <!-- NProgressjs样式 -->
    <script src="../assets/lib/NProgress/NProgress.js"></script>
    <!-- axios js样式 -->
    <script src="../assets/lib/axios.js"></script>
    <!-- jquery样式 -->
    <script src="../assets/lib/jquery-3.6.0.min.js"></script>
    <!-- toastr js样式 -->
    <script src="../assets/lib/toastr/toastr.min.js"></script>
    <script>
      // 添加请求拦截器
      axios.interceptors.request.use(
        function (config) {
          NProgress.start();
          return config;
        },
        function (error) {
          // 对请求错误做些什么
          return Promise.reject(error);
        }
      );

      // 添加响应拦截器
      axios.interceptors.response.use(
        function (response) {
          NProgress.done();
          console.log(1);
          if (response.data.code !== 0) {
            toastr.error(response.data.message);
          }
          return response;
        },
        function (error) {
          console.dir(error);
          toastr.error(error.response.data.message);
          return Promise.reject(error);
        }
      );
      // axios
      axios({
        url: "http://www.itcbc.com:8000/api/login",
        method: "POST",
        data: {
          username: "123",
          password: "123456788",
        },
      }).then((response) => {
        console.log(response);
      });
      /* 
     1、业务状态码：
     是密码达到了要求但是账号不够就提示业务状态码错误，这个写在响应拦截器第一个函数，成功的
     注意！！还要设置if来判断如果不为零就执行，好友提示
     2、htpp状态码400密码没有达到要求显示400，写在响应拦截器第二个函数中

      */
    </script>
  </body>
</html>
